package com.ruoyi.easyfame.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.poi.hpsf.Decimal;

/**
 * 融资信息对象 tb_finance
 * 
 * @author ruoyi
 * @date 2025-09-07
 */
public class Finance extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 融资人姓名 */
    @Excel(name = "融资人姓名")
    private String name;

    @Excel(name = "身份证号")
    private String idCard;

    /** 关联银行ID（关联bank_base_info表） */
    @Excel(name = "受理银行ID")
    private Long bankId;

    /** 关联银行业务ID（关联bank_business_function表） */
    @Excel(name = "申请业务ID")
    private Long businessId;

    /** 受理银行名称（冗余存储，导出展示用） */
    @Excel(name = "受理银行")
    private String bankName;

    /** 申请业务名称（冗余存储，导出展示用） */
    @Excel(name = "申请业务")
    private String businessName;

    /** 融资用途说明 */
    @Excel(name = "融资用途")
    private String purpose;

    /** 融资金额 */
    @Excel(name = "融资金额(元)")
    private BigDecimal amount;

    /** 融资期限(月) */
    @Excel(name = "融资期限(月)")
    private Integer term;

    /** 状态(0:已提交,1:审核中,2:审核通过,3:已驳回) */
    @Excel(name = "融资状态")
    private Integer status;

    /** 审核人ID（记录最后一次审核人） */
    private Long auditorId;

    /** 审核人姓名（冗余存储） */
    @Excel(name = "审核人")
    private String auditorName;

    /** 驳回原因（单独存储审核驳回详情） */
    @Excel(name = "驳回原因")
    private String rejectReason;

    /** 申请材料IDs（关联融资材料表，逗号分隔） */
    private String materialIds;

    /** 非数据库字段：状态文字描述（前端展示用） */
    private String statusDesc;

    /** 非数据库字段：利率*/
    private Double rate;

    private String note;

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    public Long getBankId() {
        return bankId;
    }

    public void setBankId(Long bankId) {
        this.bankId = bankId;
    }

    public Long getBusinessId() {
        return businessId;
    }

    public void setBusinessId(Long businessId) {
        this.businessId = businessId;
    }

    public String getBankName() {
        return bankName;
    }

    public void setBankName(String bankName) {
        this.bankName = bankName;
    }

    public String getBusinessName() {
        return businessName;
    }

    public void setBusinessName(String businessName) {
        this.businessName = businessName;
    }

    public String getPurpose() {
        return purpose;
    }

    public void setPurpose(String purpose) {
        this.purpose = purpose;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public Integer getTerm() {
        return term;
    }

    public void setTerm(Integer term) {
        this.term = term;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Long getAuditorId() {
        return auditorId;
    }

    public void setAuditorId(Long auditorId) {
        this.auditorId = auditorId;
    }

    public String getAuditorName() {
        return auditorName;
    }

    public void setAuditorName(String auditorName) {
        this.auditorName = auditorName;
    }

    public String getRejectReason() {
        return rejectReason;
    }

    public void setRejectReason(String rejectReason) {
        this.rejectReason = rejectReason;
    }

    public String getMaterialIds() {
        return materialIds;
    }

    public void setMaterialIds(String materialIds) {
        this.materialIds = materialIds;
    }

    public String getStatusDesc() {
        return statusDesc;
    }

    public void setStatusDesc(String statusDesc) {
        this.statusDesc = statusDesc;
    }

    @Override
    public String toString() {
        return "Finance{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", idCard='" + idCard + '\'' +
                ", bankId=" + bankId +
                ", businessId=" + businessId +
                ", bankName='" + bankName + '\'' +
                ", businessName='" + businessName + '\'' +
                ", purpose='" + purpose + '\'' +
                ", amount=" + amount +
                ", term=" + term +
                ", status=" + status +
                ", auditorId=" + auditorId +
                ", auditorName='" + auditorName + '\'' +
                ", rejectReason='" + rejectReason + '\'' +
                ", materialIds='" + materialIds + '\'' +
                ", statusDesc='" + statusDesc + '\'' +
                ", note='" + note + '\'' +
                '}';
    }

    public Double getRate() {
        return rate;
    }

    public void setRate(Double rate) {
        this.rate = rate;
    }
}
